home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / gedit-2 / plugins / externaltools / functions.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  6.3 KB  |  113 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import os
  5. import gtk
  6. from gtk import gdk
  7. import gio
  8. import gedit
  9. from outputpanel import OutputPanel
  10. from capture import *
  11.  
  12. def default(val, d):
  13.     if val is not None:
  14.         return val
  15.     return d
  16.  
  17.  
  18. def capture_menu_action(action, window, node):
  19.     panel = window.get_data('ExternalToolsPluginWindowData')._output_buffer
  20.     panel.show()
  21.     panel.clear()
  22.     
  23.     try:
  24.         cwd = os.getcwd()
  25.     except OSError:
  26.         cwd = os.getenv('HOME')
  27.  
  28.     capture = Capture(node.command, cwd)
  29.     capture.env = os.environ.copy()
  30.     capture.set_env(GEDIT_CWD = cwd)
  31.     view = window.get_active_view()
  32.     capture.set_flags(capture.CAPTURE_BOTH)
  33.     panel.process = capture
  34.     input_type = node.input
  35.     output_type = node.output
  36.     if output_type == 'new-document':
  37.         tab = window.create_tab(True)
  38.         view = tab.get_view()
  39.         document = tab.get_document()
  40.         pos = document.get_start_iter()
  41.         capture.connect('stdout-line', capture_stdout_line_document, document, pos)
  42.         document.begin_user_action()
  43.         view.set_editable(False)
  44.         view.set_cursor_visible(False)
  45.     elif output_type != 'output-panel' and view is not None:
  46.         document.begin_user_action()
  47.         view.set_editable(False)
  48.         view.set_cursor_visible(False)
  49.         if output_type == 'insert':
  50.             pos = document.get_iter_at_mark(document.get_mark('insert'))
  51.         elif output_type == 'replace-selection':
  52.             document.delete_selection(False, False)
  53.             pos = document.get_iter_at_mark(document.get_mark('insert'))
  54.         elif output_type == 'replace-document':
  55.             document.set_text('')
  56.             pos = document.get_end_iter()
  57.         else:
  58.             pos = document.get_end_iter()
  59.         capture.connect('stdout-line', capture_stdout_line_document, document, pos)
  60.     else:
  61.         capture.connect('stdout-line', capture_stdout_line_panel, panel)
  62.         document.begin_user_action()
  63.     capture.connect('stderr-line', capture_stderr_line_panel, panel)
  64.     capture.connect('begin-execute', capture_begin_execute_panel, panel, node.name)
  65.     capture.connect('end-execute', capture_end_execute_panel, panel, view, output_type in ('new-document', 'replace-document'))
  66.     view.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(gdk.Cursor(gdk.WATCH))
  67.     capture.execute()
  68.     document.end_user_action()
  69.  
  70.  
  71. def capture_stderr_line_panel(capture, line, panel):
  72.     panel.write(line, panel.error_tag)
  73.  
  74.  
  75. def capture_begin_execute_panel(capture, panel, label):
  76.     panel['stop'].set_sensitive(True)
  77.     panel.clear()
  78.     panel.write(_('Running tool:'), panel.italic_tag)
  79.     panel.write(' %s\n\n' % label, panel.bold_tag)
  80.  
  81.  
  82. def capture_end_execute_panel(capture, exit_code, panel, view, update_type):
  83.     panel['stop'].set_sensitive(False)
  84.     if update_type:
  85.         doc = view.get_buffer()
  86.         start = doc.get_start_iter()
  87.         end = start.copy()
  88.         end.forward_chars(300)
  89.         mtype = gio.content_type_guess(data = doc.get_text(start, end))
  90.         lmanager = gedit.get_language_manager()
  91.         language = gedit.language_manager_get_language_from_mime_type(lmanager, mtype)
  92.         if language is not None:
  93.             doc.set_language(language)
  94.         
  95.     
  96.     view.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(gdk.Cursor(gdk.XTERM))
  97.     view.set_cursor_visible(True)
  98.     view.set_editable(True)
  99.     if exit_code == 0:
  100.         panel.write('\n' + _('Done.') + '\n', panel.italic_tag)
  101.     else:
  102.         panel.write('\n' + _('Exited') + ':', panel.italic_tag)
  103.         panel.write(' %d\n' % exit_code, panel.bold_tag)
  104.  
  105.  
  106. def capture_stdout_line_panel(capture, line, panel):
  107.     panel.write(line)
  108.  
  109.  
  110. def capture_stdout_line_document(capture, line, document, pos):
  111.     document.insert(pos, line)
  112.  
  113.